From 658616e3347a67f560af879082de058a668b8bf2 Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Sat, 10 Sep 2005 20:14:50 +0000 Subject: [PATCH] Restore NULL checks before calling kfree(). Signed-off-by: Christian Limpach --- linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c | 6 ++++-- linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c | 3 ++- linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c | 6 ++++-- linux-2.6-xen-sparse/drivers/xen/netback/loopback.c | 6 ++++-- linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c | 6 ++++-- linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 3 ++- linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c | 4 +++- linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c | 6 ++++-- linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c | 3 ++- linux-2.6-xen-sparse/drivers/xen/usbback/usbback.c | 3 ++- linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c | 3 ++- 11 files changed, 33 insertions(+), 16 deletions(-) diff --git a/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c b/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c index 5a96b54f03..0872124919 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c @@ -48,7 +48,8 @@ static int blkback_remove(struct xenbus_device *dev) unregister_xenbus_watch(&be->backend_watch); if (be->blkif) blkif_put(be->blkif); - kfree(be->frontpath); + if (be->frontpath) + kfree(be->frontpath); kfree(be); return 0; } @@ -254,7 +255,8 @@ static int blkback_probe(struct xenbus_device *dev, free_be: if (be->backend_watch.node) unregister_xenbus_watch(&be->backend_watch); - kfree(frontend); + if (frontend) + kfree(frontend); kfree(be); return err; } diff --git a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c index ce90bea732..16f7657400 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c @@ -608,7 +608,8 @@ static int talk_to_backend(struct xenbus_device *dev, } out: - kfree(backend); + if (backend) + kfree(backend); return err; abort_transaction: diff --git a/linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c b/linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c index eeaaa0c283..06d07cacf1 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c @@ -52,7 +52,8 @@ static int blkback_remove(struct xenbus_device *dev) unregister_xenbus_watch(&be->backend_watch); if (be->blkif) blkif_put(be->blkif); - kfree(be->frontpath); + if (be->frontpath) + kfree(be->frontpath); kfree(be); return 0; } @@ -199,7 +200,8 @@ static int blkback_probe(struct xenbus_device *dev, free_be: if (be->backend_watch.node) unregister_xenbus_watch(&be->backend_watch); - kfree(frontend); + if (frontend) + kfree(frontend); kfree(be); return err; } diff --git a/linux-2.6-xen-sparse/drivers/xen/netback/loopback.c b/linux-2.6-xen-sparse/drivers/xen/netback/loopback.c index 09e29ae5dc..9845ba32cc 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netback/loopback.c +++ b/linux-2.6-xen-sparse/drivers/xen/netback/loopback.c @@ -160,8 +160,10 @@ static int __init make_loopback(int i) return 0; fail: - kfree(dev1); - kfree(dev2); + if (dev1 != NULL) + kfree(dev1); + if (dev2 != NULL) + kfree(dev2); return err; } diff --git a/linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c b/linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c index b13ce8bc51..80050f9c18 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c +++ b/linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c @@ -50,7 +50,8 @@ static int netback_remove(struct xenbus_device *dev) unregister_xenbus_watch(&be->backend_watch); if (be->netif) netif_disconnect(be->netif); - kfree(be->frontpath); + if (be->frontpath) + kfree(be->frontpath); kfree(be); return 0; } @@ -269,7 +270,8 @@ static int netback_probe(struct xenbus_device *dev, free_be: if (be->backend_watch.node) unregister_xenbus_watch(&be->backend_watch); - kfree(frontend); + if (frontend) + kfree(frontend); kfree(be); return err; } diff --git a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c index 6cd026a678..e31434ac12 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c @@ -1232,7 +1232,8 @@ static int talk_to_backend(struct xenbus_device *dev, netif_state = NETIF_STATE_CONNECTED; out: - kfree(backend); + if (backend) + kfree(backend); return err; abort_transaction: diff --git a/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c b/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c index 593a2c7609..1caaca4998 100644 --- a/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c +++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c @@ -148,7 +148,9 @@ static void inline packet_free(struct packet *pak) { del_singleshot_timer_sync(&pak->processing_timer); - kfree(pak->data_buffer); + if (pak->data_buffer) { + kfree(pak->data_buffer); + } /* * cannot do tpmif_put(pak->tpmif); bad things happen * on the last tpmif_put() diff --git a/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c b/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c index 2bebc07f81..4e2a11f838 100644 --- a/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c +++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c @@ -52,7 +52,8 @@ static int tpmback_remove(struct xenbus_device *dev) tpmif_put(be->tpmif); } - kfree(be->frontpath); + if (be->frontpath) + kfree(be->frontpath); kfree(be); return 0; } @@ -242,7 +243,8 @@ static int tpmback_probe(struct xenbus_device *dev, free_be: if (be->backend_watch.node) unregister_xenbus_watch(&be->backend_watch); - kfree(frontend); + if (frontend) + kfree(frontend); kfree(be); return err; } diff --git a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c index 2074a1d8de..6372382e09 100644 --- a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c @@ -363,7 +363,8 @@ static int talk_to_backend(struct xenbus_device *dev, } out: - kfree(backend); + if (backend) + kfree(backend); return err; abort_transaction: diff --git a/linux-2.6-xen-sparse/drivers/xen/usbback/usbback.c b/linux-2.6-xen-sparse/drivers/xen/usbback/usbback.c index bd3898bc30..043ab73eeb 100644 --- a/linux-2.6-xen-sparse/drivers/xen/usbback/usbback.c +++ b/linux-2.6-xen-sparse/drivers/xen/usbback/usbback.c @@ -781,7 +781,8 @@ static void dispatch_usb_io(usbif_priv_t *up, usbif_request_t *req) return; no_mem: - kfree(setup); + if ( setup != NULL ) + kfree(setup); make_response(up, req->id, req->operation, -ENOMEM, 0, 0); return; } diff --git a/linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c b/linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c index 30d4b38bbd..af2d2065df 100644 --- a/linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c @@ -1720,7 +1720,8 @@ static int __init xhci_hcd_init(void) return 0; up_failed: - kfree(errbuf); + if (errbuf) + kfree(errbuf); errbuf_failed: return retval; -- 2.30.2